using System;
using System.Linq;

namespace Test.ConsoleProgram.Algorithm.Solution
{
    [TestDescription("算法: 0215. 数组中的第K个最大元素")]
    public class No0215_FindKthLargest : AbsBaseTestItem
    {
        /*
        在未排序的数组中找到第 k 个最大的元素。请注意，你需要找的是数组排序后的第 k 个最大的元素，而不是第 k 个不同的元素。
        */

        public override void OnTest()
        {
            Assert.TestExe(FindKthLargest, new int[] { 3, 2, 1, 5, 6, 4 }, 2, 5);
            Assert.TestExe(FindKthLargest, new int[] { 3, 2, 3, 1, 2, 4, 5, 5, 6 }, 4, 4);
        }

        public int FindKthLargest(int[] nums, int k)
        {
            return nums.OrderByDescending(b => b).ToArray()[k - 1];
        }
    }
}
